package gulimall.domain.vo;

import gulimall.to.es.SkuEsModel;
import lombok.Data;

import java.util.List;

/**
 * 检索结果返回对象
 *
 * @author HLF
 * @date 2022/7/10 10:08
 */
@Data
public class SearchResultVo {
    /**
     * 查询到所有商品的商品信息
     */
    private List<SkuEsModel> products;

    /**
     * 以下是分页信息
     * 当前页码
     */
    private Integer pageNum;

    /**
     * 总共记录数
     */
    private Long total;

    /**
     * 总页码
     */
    private Integer totalPages;

    /**
     * 所有导航页码
     */
    private List<Integer> pageNavs;

    /**
     * 当前查询到的结果，所有设计的品牌
     */
    private List<BrandVo> brands;

    /**
     * 当前查询结果，所有涉及到的分类
     */
    private List<CatalogVo> catalogs;

    /**
     * 当前查询到的结果，所有涉及到的所有属性
     */
    private List<AttrVo> attrs;


    //==================以上是要返回给页面的所有信息


    /**
     * 面包屑导航数据
     * TODO 这里太麻烦了，暂时就不做了
     */
    private List<NavVo> navs;

    @Data
    public static class NavVo {
        private String navName;
        private String navValue;

        private String link;
    }

    @Data
    public static class BrandVo {
        /**
         * 品牌id
         */
        private Long brandId;

        /**
         * 品牌名字
         */
        private String brandName;

        /**
         * 品牌图片
         */
        private String brandImg;
    }

    @Data
    public static class CatalogVo {
        /**
         * 分类id
         */
        private Long catalogId;

        /**
         * 分类名字
         */
        private String catalogName;
    }

    @Data
    public static class AttrVo {
        /**
         * 属性id
         */
        private Long attrId;

        /**
         * 属性名字
         */
        private String attrName;

        /**
         * 属性值
         */
        private List<String> attrValue;
    }
}
